﻿<?xml version="1.0" encoding="utf-8"?>
<PatternTemplates PatternsVersion ="2.0">
  <PatternTemplate CodeLang="VB" PatternName="AbstractFactory">
    <PatternProperties>
      <PatternAlias>Kit</PatternAlias>
      <MinVSVersion>9.0</MinVSVersion>
      <!-- <Picture>AbstractFactory.png</Picture> -->
      <OnlineResources>http://en.wikipedia.org/wiki/Abstract_factory_pattern</OnlineResources>
      <CompilerSyntax>VB 2008</CompilerSyntax>
      <ProgrammingStyle>Generic</ProgrammingStyle>
      <!-- <Description>AbstractFactory.rtf</Description> -->
      <Category>Creational</Category>
      <!--<Culture>en</Culture> -->
    </PatternProperties>
    <FileTemplates>
      <FileTemplate FileItemName="Factories.vb">FactoriesTemplate.vb</FileTemplate>
      <FileTemplate FileItemName="Products.vb">ProductsTemplate.vb</FileTemplate>
    </FileTemplates>
    <TemplateArguments>
      <TemplateArgument ArgumentName="ConcreteFactory1" IsRuntime="false" Description ="ConcreteFactory1">ConcreteFactory1</TemplateArgument>
      <TemplateArgument ArgumentName="ConcreteFactory2" IsRuntime="false" Description ="ConcreteFactory2">ConcreteFactory2</TemplateArgument>
      <TemplateArgument ArgumentName="ProductA1" IsRuntime="false" Description ="ProductA1">ProductA1</TemplateArgument>
      <TemplateArgument ArgumentName="ProductA2" IsRuntime="false" Description ="ProductA2">ProductA2</TemplateArgument>
      <TemplateArgument ArgumentName="ProductB1" IsRuntime="false" Description ="ProductB1">ProductB1</TemplateArgument>
      <TemplateArgument ArgumentName="ProductB2" IsRuntime="false" Description ="ProductB2">ProductB2</TemplateArgument>
      <TemplateArgument ArgumentName="AbstractProductA" IsRuntime="false" Description ="AbstractProductA">AbstractProductA</TemplateArgument>
      <TemplateArgument ArgumentName="AbstractProductB" IsRuntime="false" Description ="AbstractProductB">AbstractProductB</TemplateArgument>      
      <TemplateArgument ArgumentName="RootNamespace" IsRuntime="True" Description ="NameSpace"/>
    </TemplateArguments>
</PatternTemplate>
  <PatternTemplate CodeLang="VB" PatternName="FactoryMethod">
    <PatternProperties>
      <PatternAlias>Virtual Constructor</PatternAlias>
      <MinVSVersion>9.0</MinVSVersion>
      <Picture>FactoryMethod.png</Picture>
      <OnlineResources>http://en.wikipedia.org/wiki/Factory_method_pattern</OnlineResources>
      <CompilerSyntax>VB 2008</CompilerSyntax>
      <ProgrammingStyle>Plain</ProgrammingStyle>
      <Category>Creational</Category>
      <!--<Culture>de</Culture>-->
    </PatternProperties>
    <FileTemplates>
      <FileTemplate FileItemName="FactoryMethod.vb">FactoryMethodTemplate.vb</FileTemplate>
    </FileTemplates>
    <TemplateArguments>
      <TemplateArgument ArgumentName="RootNamespace" IsRuntime="True" Description ="NameSpace"/>
     <TemplateArgument ArgumentName="IProduct" IsRuntime="false" Description ="IProduct interface">IProduct</TemplateArgument>
      <TemplateArgument ArgumentName="Creator" IsRuntime="false" Description ="AbstractCreator">Creator</TemplateArgument>
    </TemplateArguments>
  </PatternTemplate>
  <PatternTemplate CodeLang="VB" PatternName="Singleton">
    <PatternProperties>
      <PatternAlias>Singleton</PatternAlias>
      <MinVSVersion>9.0</MinVSVersion>
      <OnlineResources>http://en.wikipedia.org/wiki/Singleton_pattern</OnlineResources>
      <CompilerSyntax>VB 2008</CompilerSyntax>
      <ProgrammingStyle>static initialization</ProgrammingStyle>
      <Category>Creational</Category>
    </PatternProperties>
    <FileTemplates>
      <FileTemplate FileItemName="Singleton.vb">SingletonTemplate.vb</FileTemplate>
    </FileTemplates>
    <TemplateArguments>
      <TemplateArgument ArgumentName="RootNamespace" IsRuntime="True" Description ="NameSpace"/>
      <TemplateArgument ArgumentName="Singleton" IsRuntime="false" Description ="Singleton class Name">ConcreteSingleton</TemplateArgument>
    </TemplateArguments>
  </PatternTemplate>
  <PatternTemplate CodeLang="VB" PatternName="Singleton">
    <PatternProperties>
      <PatternAlias>Singleton</PatternAlias>
      <MinVSVersion>10.0</MinVSVersion>
      <OnlineResources>http://en.wikipedia.org/wiki/Singleton_pattern</OnlineResources>
      <CompilerSyntax>VB 2010</CompilerSyntax>
      <ProgrammingStyle>multi threaded</ProgrammingStyle>
      <Category>Creational</Category>
    </PatternProperties>
    <FileTemplates>
      <FileTemplate FileItemName="MultiThreadedSingleton.vb">MultiThreadedSingletonTemplate.vb</FileTemplate>
    </FileTemplates>
    <TemplateArguments>
      <TemplateArgument ArgumentName="RootNamespace" IsRuntime="True" Description ="NameSpace"/>
      <TemplateArgument ArgumentName="MultiThreadedSingleton" IsRuntime="false" Description ="Singleton class Name">MultiThreadedSingleton</TemplateArgument>
    </TemplateArguments>
  </PatternTemplate>
  <PatternTemplate CodeLang="VB" PatternName="Bridge">
    <PatternProperties>
      <PatternAlias>Handle or Body</PatternAlias>
      <MinVSVersion>9.0</MinVSVersion>
      <Picture>Bridge.png</Picture>
      <OnlineResources>http://en.wikipedia.org/wiki/Bridge_pattern</OnlineResources>
      <CompilerSyntax>VB 2008</CompilerSyntax>
      <ProgrammingStyle>Plain</ProgrammingStyle>
      <Category>Structural</Category>
      <!--<Culture>de</Culture>-->
    </PatternProperties>
    <FileTemplates>
      <FileTemplate FileItemName="Bridge.vb">BridgeTemplate.vb</FileTemplate>
    </FileTemplates>
    <TemplateArguments>
      <TemplateArgument ArgumentName="RootNamespace" IsRuntime="True" Description ="NameSpace"/>
      <TemplateArgument ArgumentName="Abstraction" IsRuntime="false" Description ="Abstraction interface">Abstraction</TemplateArgument>
      <TemplateArgument ArgumentName="RefinedAbstraction" IsRuntime="false" Description ="Refined Abstraction">RefinedAbstraction</TemplateArgument>
      <TemplateArgument ArgumentName="Implementor" IsRuntime="false" Description ="Implementor">Implementor</TemplateArgument>
    </TemplateArguments>
  </PatternTemplate>
  <PatternTemplate CodeLang="VB" PatternName="State">
    <PatternProperties>
      <PatternAlias>Object of States</PatternAlias>
      <MinVSVersion>9.0</MinVSVersion>
      <Picture>state.png</Picture>
      <OnlineResources>http://en.wikipedia.org/wiki/State_pattern</OnlineResources>
      <CompilerSyntax>VB 2008</CompilerSyntax>
      <ProgrammingStyle>Plain</ProgrammingStyle>
      <Category>Behavioral</Category>
    </PatternProperties>
    <FileTemplates>
      <FileTemplate FileItemName="State.vb">StateTemplate.vb</FileTemplate>
    </FileTemplates>
    <TemplateArguments>
      <TemplateArgument ArgumentName="RootNamespace" IsRuntime="True" Description ="NameSpace"/>
      <TemplateArgument ArgumentName="Context" IsRuntime="false" Description ="Context class Name">Context</TemplateArgument>
      <TemplateArgument ArgumentName="IState" IsRuntime="false" Description ="IState interface Name">IState</TemplateArgument>
      <TemplateArgument ArgumentName="Handle" IsRuntime="false" Description ="Handle method Name">Handle</TemplateArgument>
      <TemplateArgument ArgumentName="ConcreteStateA" IsRuntime="false" Description ="ConcreteStateA class Name">ConcreteStateA</TemplateArgument>
      <TemplateArgument ArgumentName="ConcreteStateB" IsRuntime="false" Description ="ConcreteStateB class Name">ConcreteStateB</TemplateArgument>
      <TemplateArgument ArgumentName="ConcreteStateC" IsRuntime="false" Description ="ConcreteStateC class Name">ConcreteStateC</TemplateArgument>
    </TemplateArguments>
  </PatternTemplate>
  <PatternTemplate CodeLang="VB" PatternName="Proxy">
    <PatternProperties>
      <PatternAlias>Surogate</PatternAlias>
      <MinVSVersion>9.0</MinVSVersion>
      <Picture>proxy.png</Picture>
      <OnlineResources>http://en.wikipedia.org/wiki/Proxy_pattern</OnlineResources>
      <CompilerSyntax>VB 2008</CompilerSyntax>
      <ProgrammingStyle>Plain</ProgrammingStyle>
      <Category>Structural</Category>
    </PatternProperties>
    <FileTemplates>
      <FileTemplate FileItemName="Proxy.vb">ProxyTemplate.vb</FileTemplate>
    </FileTemplates>
    <TemplateArguments>
      <TemplateArgument ArgumentName="RootNamespace" IsRuntime="True" Description ="NameSpace"/>
      <TemplateArgument ArgumentName="ISubject" IsRuntime="false" Description ="ISubject interface Name">ISubject</TemplateArgument>
      <TemplateArgument ArgumentName="Request" IsRuntime="false" Description ="Request method Name">Request</TemplateArgument>
      <TemplateArgument ArgumentName="Proxy" IsRuntime="false" Description ="Proxy class Name">Proxy</TemplateArgument>
      <TemplateArgument ArgumentName="RealSubject" IsRuntime="false" Description ="RealSubject class Name">RealSubject</TemplateArgument>
    </TemplateArguments>
  </PatternTemplate>
  <PatternTemplate CodeLang="VB" PatternName="Chain">
    <PatternProperties>
      <PatternAlias>Chain of Responsability</PatternAlias>
      <MinVSVersion>9.0</MinVSVersion>
      <Picture>chain.png</Picture>
      <OnlineResources>http://en.wikipedia.org/wiki/Chain_of_responsibility_pattern</OnlineResources>
      <CompilerSyntax>VB 2008</CompilerSyntax>
      <ProgrammingStyle>plain</ProgrammingStyle>
      <Category>Behavioral</Category>
    </PatternProperties>
     <FileTemplates>
       <!--<FileTemplate FileItemName="chain.vb">chainTemplate.</FileTemplate>-->
    </FileTemplates>
    <TemplateArguments>
      <TemplateArgument ArgumentName="RootNamespace" IsRuntime="True" Description ="NameSpace"/>
      <TemplateArgument ArgumentName="Request" IsRuntime="false" Description ="Request class Name">Request</TemplateArgument>
      <TemplateArgument ArgumentName="Handler" IsRuntime="false" Description ="Handler class Name">Handler</TemplateArgument>
      <TemplateArgument ArgumentName="ConcreteHandlerA" IsRuntime="false" Description ="ConcreteHandlerA class Name">ConcreteHandlerA</TemplateArgument>
      <TemplateArgument ArgumentName="ConcreteHandlerB" IsRuntime="false" Description ="ConcreteHandlerB class Name">ConcreteHandlerB</TemplateArgument>
      <TemplateArgument ArgumentName="ConcreteHandlerC" IsRuntime="false" Description ="ConcreteHandlerC class Name">ConcreteHandlerC</TemplateArgument>
    </TemplateArguments>
  </PatternTemplate>
</PatternTemplates>
